/*
*  Copyright 2019-2020 Zheng Jie
*
*  Licensed under the Apache License, Version 2.0 (the "License");
*  you may not use this file except in compliance with the License.
*  You may obtain a copy of the License at
*
*  http://www.apache.org/licenses/LICENSE-2.0
*
*  Unless required by applicable law or agreed to in writing, software
*  distributed under the License is distributed on an "AS IS" BASIS,
*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*  See the License for the specific language governing permissions and
*  limitations under the License.
*/
package me.zhengjie.business.domain;

import lombok.Data;
import cn.hutool.core.bean.BeanUtil;
import io.swagger.annotations.ApiModelProperty;
import cn.hutool.core.bean.copier.CopyOptions;
import me.zhengjie.base.BaseBusiness;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import javax.validation.constraints.*;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.io.Serializable;
import java.util.Date;

/**
* @website https://el-admin.vip
* @description /
* @author xiahongbo
* @date 2024-12-27
**/
@Entity
@Data
@Table(name="PRIC_SERVICE_ITEM")
public class PricServiceItem extends BaseBusiness implements Serializable {

    @Id
    @GenericGenerator(name = "hibernate-uuid", strategy = "uuid")
    @GeneratedValue(generator = "hibernate-uuid")
    @Column(name = "PRIC_SERVICE_ITEM_ID")
    @ApiModelProperty(value = "主键ID")
    private String pricServiceItemId;

    @Column(name = "LONGTERM_ORG_SERVITEM_EVT_ID")
    @ApiModelProperty(value = "长期护理机构服务项目事件ID")
    private String longtermOrgServitemEvtId;

    @Column(name = "LONGTERM_ORG_SERVITEM_ID")
    @ApiModelProperty(value = "长期护理机构服务项目ID")
    private String longtermOrgServitemId;

    @Column(name = "NURSCARE_ORG_NAME")
    @ApiModelProperty(value = "护理机构名称")
    private String nurscareOrgName;

    @Column(name = "NURSCARE_ORG_ID")
    @ApiModelProperty(value = "护理机构ID")
    private String nurscareOrgId;

    @Column(name = "NURSCARE_ORG_NO")
    @ApiModelProperty(value = "护理机构编号")
    private String nurscareOrgNo;

    @Column(name = "LONGTERM_SERVITEM_ID")
    @ApiModelProperty(value = "长期护理服务项目ID")
    private String longtermServitemId;

    @Column(name = "LONGTERM_SERVITEM_NO")
    @ApiModelProperty(value = "长期护理服务项目编号")
    private String longtermServitemNo;

    @Column(name = "LONGTERM_SERVITEM_NAME")
    @ApiModelProperty(value = "长期护理服务项目名称")
    private String longtermServitemName;

    @Column(name = "LONGTERM_SERV_TYPE")
    @ApiModelProperty(value = "长期护理服务类型")
    private String longtermServType;

    @Column(name = "SELFPAY_PROP_TYPE")
    @ApiModelProperty(value = "目录自付比例类别")
    private BigDecimal selfpayPropType;

    @Column(name = "SELFPAY_PROP")
    @ApiModelProperty(value = "自付比例")
    private BigDecimal selfpayProp;

    @Column(name = "PRIC_UPLMT")
    @ApiModelProperty(value = "单价上限")
    private BigDecimal pricUplmt;

    @Column(name = "ADV_DURA_UPLMT")
    @ApiModelProperty(value = "建议时长上限")
    private BigDecimal advDuraUplmt;

    @Column(name = "NURS_ORG_SERVITEM_NO")
    @ApiModelProperty(value = "护理机构服务项目编号")
    private String nursOrgServitemNo;

    @Column(name = "NURS_ORG_SERVITEM_NAME")
    @ApiModelProperty(value = "护理机构服务项目名称")
    private String nursOrgServitemName;

    @Column(name = "NURS_ORG_SERVITEM_TYPE")
    @ApiModelProperty(value = "护理机构服务项目类型")
    private String nursOrgServitemType;

    @Column(name = "NURS_ORG_CHRGITM_LV")
    @ApiModelProperty(value = "收费项目等级")
    private String nursOrgChrgitmLv;

    @Column(name = "NURS_ORG_ADMDVS")
    @ApiModelProperty(value = "护理机构医保区划")
    private String nursOrgAdmdvs;

    @Column(name = "NURS_ORG_SERVITEM_PRIC")
    @ApiModelProperty(value = "护理机构服务项目单价")
    private BigDecimal nursOrgServitemPric;

    @Column(name = "NURS_ORG_SERVITEM_PRCUNT_NO")
    @ApiModelProperty(value = "护理机构服务项目计价单位编码")
    private String nursOrgServitemPrcuntNo;

    @Column(name = "NURS_ORG_SERVITEM_MEMO")
    @ApiModelProperty(value = "护理机构服务项目备注")
    private String nursOrgServitemMemo;

    @Column(name = "ENAB_STAS")
    @ApiModelProperty(value = "启用状态(1启用 0停用)")
    private String enabStas;

    @Column(name = "CHK_STAS")
    @ApiModelProperty(value = "审核状态")
    private String chkStas;

    @Column(name = "OPRT_OPNN")
    @ApiModelProperty(value = "操作意见")
    private String oprtOpnn;

    @Column(name = "RCHK_OPNN")
    @ApiModelProperty(value = "复核意见")
    private String rchkOpnn;

    @Column(name = "SERV_MATT_INST_ID")
    @ApiModelProperty(value = "服务事项实例ID")
    private String servMattInstId;

    @Column(name = "SERV_MATT_NODE_INST_ID")
    @ApiModelProperty(value = "服务事项环节实例ID")
    private String servMattNodeInstId;

    @Column(name = "EVT_INST_ID")
    @ApiModelProperty(value = "事件实例ID")
    private String evtInstId;

    @Column(name = "EVT_TYPE")
    @ApiModelProperty(value = "事件类型")
    private String evtType;

    @Column(name = "RID")
    @ApiModelProperty(value = "数据唯一记录号")
    private String rid;

    @Column(name = "CRTE_TIME")
    @ApiModelProperty(value = "数据创建时间")
    private Date crteTime;

    @Column(name = "UPDT_TIME")
    @ApiModelProperty(value = "数据更新时间")
    private Date updtTime;

    @Column(name = "CRTER_ID")
    @ApiModelProperty(value = "创建人ID")
    private String crterId;

    @Column(name = "CRTER_NAME")
    @ApiModelProperty(value = "创建人姓名")
    private String crterName;

    @Column(name = "CRTE_OPTINS_NO")
    @ApiModelProperty(value = "创建机构编号")
    private String crteOptinsNo;

    @Column(name = "OPTER_ID")
    @ApiModelProperty(value = "经办人ID")
    private String opterId;

    @Column(name = "OPTER_NAME")
    @ApiModelProperty(value = "经办人姓名")
    private String opterName;

    @Column(name = "OPT_TIME")
    @ApiModelProperty(value = "经办时间")
    private Date optTime;

    @Column(name = "OPTINS_NO")
    @ApiModelProperty(value = "经办机构编号")
    private String optinsNo;

    @Column(name = "ADMDVS")
    @ApiModelProperty(value = "医保区划")
    private String admdvs;

    @Column(name = "VALI_FLAG")
    @ApiModelProperty(value = "有效标志")
    private String valiFlag;

    @Column(name = "DATA_VER")
    @ApiModelProperty(value = "数据版本号")
    private String dataVer;

    @Column(name = "OPT_DOT_ID")
    @ApiModelProperty(value = "经办网点ID")
    private String optDotId;

    @Column(name = "ASST_PRDR")
    @ApiModelProperty(value = "辅具厂商")
    private String asstPrdr;

    @Column(name = "ASST_AVL_CNT")
    @ApiModelProperty(value = "辅具可用数量")
    private BigDecimal asstAvlCnt;

    @Column(name = "ASST_SPEC")
    @ApiModelProperty(value = "辅具规格")
    private String asstSpec;

    @Column(name = "ASST_TYPE")
    @ApiModelProperty(value = "辅具类别")
    private String asstType;

    @Column(name = "ASST_PROD_TYPE")
    @ApiModelProperty(value = "辅具产品类别")
    private String asstProdType;

    @Column(name = "CENTRE_ASST_TYPE")
    @ApiModelProperty(value = "中心目录-辅具类别")
    private String centreAsstType;

    @Column(name = "CENTRE_ASST_PROD_TYPE")
    @ApiModelProperty(value = "中心目录-辅具产品类别")
    private String centreAsstProdType;


    @Column(name = "OVERLMT_DSPO_WAY")
    @ApiModelProperty(value = "超限价处理方式")
    private String overlmtDspoWay;

    @Column(name = "LOC_ADMDVS")
    @ApiModelProperty(value = "所属医保区划")
    private String locAdmdvs;

    @Column(name = "OWNPAY_FLAG")
    @ApiModelProperty(value = "自费标志")
    private String ownpayFlag;


    public void copy(PricServiceItem source){
        BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
    }
}